common.skill

উদাহরণসমূহ এবং ব্যবহারিক ডেমো

Database Tutorials - অ্যাপাচি ডার্বি (Apache Derby)
202
202

Apache Derby এর রেপ্লিকেশন কনফিগারেশন কিভাবে করা হয় এবং এর প্রাথমিক সেটআপ কিভাবে কাজ করে তা উদাহরণের মাধ্যমে দেখা যাক। এখানে Master-Slave Replication এর একটি সাধারণ উদাহরণ দেওয়া হলো, যেখানে একটি ডেটাবেসের তথ্য অন্য ডেটাবেসে সিঙ্ক্রোনাইজ করা হয়।


১. Derby Master-Slave Replication উদাহরণ

আমরা একটি Master ডেটাবেস তৈরি করব, এবং তার পর একটি Slave ডেটাবেস তৈরি করে তাকে Master ডেটাবেসের ডেটা সিঙ্ক্রোনাইজ করতে দেব।

Step 1: Master Database Setup

  1. Master Database তৈরি:

    প্রথমে Master Database তৈরি করুন এবং এটি সিঙ্ক্রোনাইজ করার জন্য প্রস্তুত করুন। নিচের কোডটি Master ডেটাবেস তৈরি করতে সাহায্য করবে:

    Create a Master Database:

    jdbc:derby:masterdb;create=true;
    

    এটি masterdb নামের একটি ডেটাবেস তৈরি করবে। আপনি এটি আপনার পছন্দমতো নাম দিতে পারেন।

  2. Master ডেটাবেসে একটি টেবিল তৈরি করা:

    Master Database এর মধ্যে কিছু ডেটা তৈরি করুন:

    CREATE TABLE employees (
        id INT PRIMARY KEY,
        name VARCHAR(100),
        salary INT
    );
    
    INSERT INTO employees (id, name, salary) VALUES (1, 'John Doe', 50000);
    INSERT INTO employees (id, name, salary) VALUES (2, 'Jane Smith', 60000);
    

    এই কোডটি একটি employees টেবিল তৈরি করবে এবং এতে কিছু ডেটা ইনসার্ট করবে।


Step 2: Slave Database Setup

  1. Slave Database তৈরি করা:

    Slave Database তৈরি করার জন্য, নিচের কোড ব্যবহার করুন:

    jdbc:derby:slavedb;create=true;
    

    এটি slavedb নামের একটি ডেটাবেস তৈরি করবে, যা Master Database এর সিঙ্ক্রোনাইজড কপি হবে।

  2. Slave Database কনফিগারেশন:

    Slave Database এর কনফিগারেশন ফাইলে, রেপ্লিকেশন চালু করতে আপনাকে নিচের সেটিংস ব্যবহার করতে হবে।

    derby.properties ফাইলে:

    derby.storage.replicated=true
    derby.replicated.database.dir=/path/to/slave/database
    

Step 3: Replication প্রক্রিয়া শুরু করা

  1. Master Database থেকে Replication শুরু করা:

    যখন Master Database তৈরি হয়ে যাবে, তখন আপনি Slave Database এর কনফিগারেশন অনুযায়ী, ডেটা সিঙ্ক্রোনাইজ করতে পারবেন।

  2. Slave Database থেকে Replication প্রক্রিয়া সিঙ্ক্রোনাইজ করা:

    Slave ডেটাবেস স্বয়ংক্রিয়ভাবে Master ডেটাবেসের তথ্য গ্রহণ করবে এবং সেটি সিঙ্ক্রোনাইজ হবে। যদি Master Database তে কোনো পরিবর্তন হয়, সেগুলি Slave Database এ সিঙ্ক্রোনাইজ হবে।


২. Views and Indexes ব্যবহার করে Replication ডেমো

এখন, Views এবং Indexes ব্যবহার করে ডেটাবেস রেপ্লিকেশন কিভাবে আরও কার্যকর করা যায় তা দেখানো হবে।

Step 1: View তৈরি করা

ধরা যাক, আমরা Master Database এ একটি view তৈরি করতে চাই, যাতে শুধুমাত্র কিছু নির্দিষ্ট ডেটা দেখা যায়, যেমন salary ৫০,০০০ এর বেশি এমন কর্মীদের তথ্য।

CREATE VIEW high_salary_employees AS
SELECT id, name, salary FROM employees WHERE salary > 50000;

এটি একটি view তৈরি করবে যা শুধুমাত্র high_salary_employees নামক ডেটাকে দেখাবে।

Step 2: Index তৈরি করা

এখন, আমরা Master Database এ একটি index তৈরি করি যাতে salary কলামে দ্রুত অনুসন্ধান করা যায়।

CREATE INDEX idx_employee_salary ON employees (salary);

এই ইনডেক্সটি salary কলামের উপর তৈরি হবে, যা অনুসন্ধান এবং সজ্জিতকরণের কার্যকারিতা দ্রুত করবে।


৩. Replication Testing

এখন, আমরা Master Database এ একটি নতুন রেকর্ড যোগ করব এবং দেখব এটি Slave Database এ সিঙ্ক্রোনাইজ হচ্ছে কিনা।

Step 1: Master Database এ ডেটা ইনসার্ট করা

INSERT INTO employees (id, name, salary) VALUES (3, 'Alex Johnson', 70000);

Step 2: Slave Database তে ডেটা চেক করা

এখন, Slave Database তে গিয়ে employees টেবিলের মধ্যে নতুন রেকর্ডটি চেক করুন।

SELECT * FROM employees;

এটি দেখাবে যে Master Database থেকে Slave Database এ নতুন ডেটা সিঙ্ক্রোনাইজ হয়ে গেছে।


উপসংহার

Derby Database Replication একটি সহজ এবং কার্যকরী পদ্ধতি যা Master-Slave মোডে কাজ করে। এই প্রক্রিয়ায় একটি ডেটাবেসের পরিবর্তন স্বয়ংক্রিয়ভাবে অন্য ডেটাবেসে সিঙ্ক্রোনাইজ হয়ে যায়। এখানে প্রদত্ত উদাহরণ এবং ডেমো গুলি প্রমাণ করেছে কিভাবে Views, Indexes, এবং Replication কনফিগারেশন ব্যবহার করে ডেটাবেসের কার্যকারিতা উন্নত করা যায়। যদিও Derby রেপ্লিকেশন সিস্টেম কিছু সীমাবদ্ধতা রয়েছে, এটি ছোট এবং মাঝারি আকারের অ্যাপ্লিকেশনের জন্য উপযুক্ত হতে পারে।

common.content_added_by

Derby তে টেবিল এবং ডেটা ম্যানিপুলেশন উদাহরণ

201
201

Apache Derby একটি রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) যা SQL ভিত্তিক এবং Java-ভিত্তিক অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়। এতে টেবিল তৈরি এবং ডেটা ম্যানিপুলেশন করার জন্য SQL কমান্ড ব্যবহার করা হয়। এখানে কিছু সাধারণ উদাহরণ দেওয়া হল যেগুলি Derby তে টেবিল তৈরি, ডেটা ইনসার্ট, আপডেট, ডিলিট এবং সিলেক্ট করার জন্য ব্যবহৃত হয়।


১. টেবিল তৈরি (Creating a Table)

Derby তে একটি টেবিল তৈরি করার জন্য CREATE TABLE কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, একটি employees টেবিল তৈরি করা যেটিতে কর্মচারীদের নাম, বয়স এবং বিভাগের তথ্য থাকবে।

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    department VARCHAR(50)
);

এখানে:

  • id: কর্মচারীর একটি ইউনিক আইডি (প্রাইমারি কী হিসেবে ব্যবহৃত)
  • name: কর্মচারীর নাম
  • age: কর্মচারীর বয়স
  • department: কর্মচারীর কাজের বিভাগ

২. ডেটা ইনসার্ট (Inserting Data)

টেবিল তৈরি করার পর, আমরা INSERT INTO কমান্ড ব্যবহার করে টেবিলে ডেটা ইনসার্ট করতে পারি। উদাহরণস্বরূপ:

INSERT INTO employees (id, name, age, department)
VALUES (1, 'John Doe', 30, 'HR');
INSERT INTO employees (id, name, age, department)
VALUES (2, 'Jane Smith', 25, 'IT');
INSERT INTO employees (id, name, age, department)
VALUES (3, 'Emily Johnson', 28, 'Finance');

এই কমান্ডগুলো ৩টি রেকর্ড টেবিলের মধ্যে ইনসার্ট করবে।


৩. ডেটা সিলেক্ট (Selecting Data)

যখন আমরা টেবিলের ডেটা দেখতে চাই, তখন SELECT কুয়েরি ব্যবহার করি। উদাহরণস্বরূপ:

SELECT * FROM employees;

এই কুয়েরি employees টেবিলের সমস্ত রেকর্ড (বয়স, নাম, বিভাগ সহ) দেখাবে।

নির্দিষ্ট কলাম দেখতে চাইলে, আমরা কলামের নাম দিয়ে কুয়েরি লিখতে পারি:

SELECT name, department FROM employees;

এটি শুধুমাত্র কর্মচারীর নাম এবং বিভাগ দেখাবে।


৪. ডেটা আপডেট (Updating Data)

যদি একটি রেকর্ডের তথ্য আপডেট করতে হয়, তাহলে UPDATE কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আমরা John Doe এর বয়স ৩০ থেকে 35 এ পরিবর্তন করতে চাই:

UPDATE employees
SET age = 35
WHERE name = 'John Doe';

এটি John Doe এর বয়স আপডেট করবে।


৫. ডেটা ডিলিট (Deleting Data)

ডেটা ডিলিট করতে DELETE কমান্ড ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আমরা Emily Johnson এর তথ্য মুছে ফেলতে চাই:

DELETE FROM employees
WHERE name = 'Emily Johnson';

এটি Emily Johnson নামের কর্মচারীর রেকর্ড মুছে ফেলবে।


৬. টেবিলের স্ট্রাকচার পরিবর্তন (Altering the Table Structure)

টেবিলের স্ট্রাকচার পরিবর্তন করতে ALTER TABLE কমান্ড ব্যবহার করা হয়। যেমন, যদি আমরা employees টেবিলে একটি নতুন কলাম যোগ করতে চাই:

ALTER TABLE employees
ADD COLUMN salary DECIMAL(10, 2);

এটি employees টেবিলে একটি নতুন salary কলাম যোগ করবে, যেটি কর্মচারীর বেতন ধারণ করবে।


৭. টেবিল মুছে ফেলা (Dropping the Table)

যদি আপনি একটি টেবিল পুরোপুরি মুছে ফেলতে চান, তবে DROP TABLE কমান্ড ব্যবহার করা হয়:

DROP TABLE employees;

এটি employees টেবিলটি ডিলিট করবে এবং সমস্ত তথ্য মুছে ফেলবে।


৮. টেবিলের ডেটা কনসট্রেইন্ট (Constraints)

আপনি যখন টেবিল তৈরি করেন, তখন আপনি ডেটার সঠিকতা নিশ্চিত করার জন্য কনসট্রেইন্ট যোগ করতে পারেন, যেমন NOT NULL, UNIQUE, CHECK, ইত্যাদি। উদাহরণস্বরূপ, একটি টেবিল তৈরি করা যা একটি email ফিল্ডে UNIQUE কনস্ট্রেইন্ট ব্যবহার করে:

CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100) UNIQUE
);

এটি নিশ্চিত করবে যে email ফিল্ডে কোনো ডুপ্লিকেট মান প্রবেশ করতে পারবে না।


উপসংহার

Apache Derby ডেটাবেসে টেবিল তৈরি, ডেটা ইনসার্ট, সিলেক্ট, আপডেট, ডিলিট এবং কনসট্রেইন্ট ব্যবহার করার জন্য SQL কমান্ডগুলি ব্যবহার করা হয়। এই কমান্ডগুলির মাধ্যমে ডেটাবেসের মধ্যে তথ্য সংরক্ষণ, পরিবর্তন এবং ম্যানিপুলেট করা যায়। Derby ডেটাবেসের এই কার্যাবলী বিভিন্ন অ্যাপ্লিকেশনে ডেটা পরিচালনার জন্য অত্যন্ত গুরুত্বপূর্ণ এবং কার্যকরী।

common.content_added_by

Java অ্যাপ্লিকেশনে Derby Embedded Mode ব্যবহার

224
224

Apache Derby এর Embedded Mode হল একটি বিশেষ মোড যেখানে ডেটাবেস সার্ভার ছাড়াই ডেটাবেস অ্যাপ্লিকেশন চলতে পারে। এতে Java অ্যাপ্লিকেশন থেকে ডেটাবেসের সাথে সরাসরি যোগাযোগ করা যায়, এবং ডেটাবেসের সমস্ত কার্যক্রম Java প্রোগ্রামের ভিতরেই পরিচালিত হয়। এটি সাধারণত ডেটাবেস অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয় যেখানে ডেটাবেস সার্ভার আলাদা না হয়ে সরাসরি অ্যাপ্লিকেশনের অংশ হিসেবে কাজ করে।

Embedded Mode এ, Apache Derby আপনার Java অ্যাপ্লিকেশনের অংশ হয়ে ওঠে এবং ডেটাবেস সংযোগটি আপনার অ্যাপ্লিকেশন পরিবেশের মধ্যে স্বাভাবিকভাবে কাজ করে। এটি ডেটাবেস সার্ভারের প্রয়োজনীয়তা কমিয়ে আনে এবং Java অ্যাপ্লিকেশনগুলির মধ্যে ডেটাবেস ব্যবহারের একটি সরল, হালকা পদ্ধতি সরবরাহ করে।


Apache Derby Embedded Mode এর সুবিধা

  1. ডেটাবেস সার্ভারের প্রয়োজন হয় না: অ্যাপ্লিকেশনটির সাথে ডেটাবেস সরাসরি অন্তর্ভুক্ত থাকে, ফলে ডেটাবেস সার্ভারের আলাদা কনফিগারেশন বা পরিচালনার দরকার নেই।
  2. পারফরম্যান্স: সরাসরি অ্যাপ্লিকেশনের মধ্যে ডেটাবেস কাজ করার কারণে পারফরম্যান্সে উন্নতি হয় এবং ডেটাবেসের সঙ্গে সংযোগের জন্য নেটওয়ার্কের কোনও বিলম্ব থাকে না।
  3. সহজ ডিপ্লয়মেন্ট: অ্যাপ্লিকেশনটি পোর্টেবল হয় কারণ এটি ডেটাবেস সার্ভার ছাড়াই কাজ করতে সক্ষম। ডেটাবেস ফাইলগুলো অ্যাপ্লিকেশনের অংশ হয়ে থাকে এবং একত্রে মোবাইল বা ডেস্কটপ অ্যাপ্লিকেশনগুলিতে ডিপ্লয় করা যায়।

Java অ্যাপ্লিকেশনে Derby Embedded Mode ব্যবহারের ধাপসমূহ

১. Apache Derby ডাউনলোড এবং সেটআপ

প্রথমেই Apache Derby ডাউনলোড করুন:

ডাউনলোড করার পর এটি আপনার প্রোজেক্টে যোগ করুন। যদি আপনি Maven ব্যবহার করেন, তবে এটি pom.xml এ নিচের মত নির্দিষ্ট করে দিতে পারেন:

<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.15.2.0</version>
</dependency>

২. Derby Embedded Mode এ ডেটাবেস সংযোগ

Apache Derby Embedded Mode এ ডেটাবেসের সাথে সংযোগ করতে, আপনি সাধারণভাবে DriverManager ব্যবহার করতে পারেন, যা JDBC API এর মাধ্যমে ডেটাবেসের সাথে যোগাযোগ করে।

নিম্নলিখিত কোডটি Derby Embedded Mode-এ ডেটাবেসের সাথে সংযোগ স্থাপন করে:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class DerbyEmbeddedExample {
    public static void main(String[] args) {
        // ডেটাবেস URL, যেখানে ডেটাবেস সংরক্ষিত হবে
        String dbURL = "jdbc:derby:myDB;create=true";
        Connection conn = null;

        try {
            // Derby ড্রাইভার লোড করা
            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

            // ডেটাবেস সংযোগ
            conn = DriverManager.getConnection(dbURL);
            System.out.println("ডেটাবেস সংযোগ সফল!");

            // স্টেটমেন্ট তৈরি করা
            Statement stmt = conn.createStatement();

            // টেবিল তৈরি করা
            String createTableSQL = "CREATE TABLE employees (id INT, name VARCHAR(100))";
            stmt.executeUpdate(createTableSQL);
            System.out.println("টেবিল তৈরি হয়েছে।");

            // ডেটাবেস সংযোগ বন্ধ করা
            stmt.close();
            conn.close();
            System.out.println("সংযোগ বন্ধ করা হয়েছে।");

        } catch (SQLException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

৩. ডেটাবেসে ডেটা ইনসার্ট করা

একটি টেবিল তৈরি করার পর, আপনি ডেটাবেসে ডেটা ইনসার্ট করতে পারেন। নিম্নলিখিত কোডটি employees টেবিলে ডেটা ইনসার্ট করার উদাহরণ:

String insertSQL = "INSERT INTO employees (id, name) VALUES (1, 'John Doe')";
stmt.executeUpdate(insertSQL);
System.out.println("ডেটা ইনসার্ট করা হয়েছে।");

৪. টেবিল থেকে ডেটা পড়া

ডেটাবেসে ইনসার্ট করা ডেটা পড়তে, আপনি SELECT কুয়েরি ব্যবহার করতে পারেন:

import java.sql.ResultSet;

String selectSQL = "SELECT * FROM employees";
ResultSet rs = stmt.executeQuery(selectSQL);

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println("ID: " + id + ", Name: " + name);
}

rs.close();

৫. ডেটাবেস বন্ধ করা

অ্যাপ্লিকেশনটির কাজ শেষ হলে, close() মেথড ব্যবহার করে ডেটাবেসের সংযোগ বন্ধ করা উচিত।

conn.close();

Derby Embedded Mode এর সীমাবদ্ধতা

  1. Multi-user Support: Embedded Mode শুধুমাত্র একটি প্রক্রিয়ার জন্য উপযুক্ত। অর্থাৎ, একাধিক অ্যাপ্লিকেশন বা ক্লায়েন্ট একই ডেটাবেসে কাজ করতে পারবে না। যদি আপনি মাল্টি-ইউজার সাপোর্ট চান, তাহলে Network Server Mode ব্যবহার করা উচিত।
  2. Scalability Issues: যদিও Embedded Mode ছোট ও মাঝারি আকারের অ্যাপ্লিকেশনের জন্য উপযুক্ত, তবে বড় আকারের অ্যাপ্লিকেশন বা উচ্চ লোডের পরিস্থিতিতে এটি পারফরম্যান্সের সীমাবদ্ধতা সৃষ্টি করতে পারে।

উপসংহার

Apache Derby Embedded Mode একটি সহজ, হালকা এবং কার্যকরী ডেটাবেস সমাধান যা Java অ্যাপ্লিকেশনগুলির মধ্যে ডেটাবেস ব্যবহারের জন্য আদর্শ। এটি ডেটাবেস সার্ভারের প্রয়োজন ছাড়াই ডেটাবেস সংরক্ষণ এবং পরিচালনা করতে সাহায্য করে, যা ছোট অ্যাপ্লিকেশন বা প্রোটোটাইপ ডেভেলপমেন্টের জন্য উপযুক্ত। তবে, মাল্টি-ইউজার এবং উচ্চ পারফরম্যান্সের অ্যাপ্লিকেশনের জন্য এটি সীমাবদ্ধ হতে পারে, এবং সেক্ষেত্রে Network Server Mode ব্যবহারের পরামর্শ দেওয়া হয়।

common.content_added_by

Client-Server অ্যাপ্লিকেশনের উদাহরণ

206
206

Client-Server Architecture একটি সিস্টেম ডিজাইন মডেল যা দুইটি প্রধান উপাদান নিয়ে গঠিত: Client এবং Server। এই মডেলে, Client হল সেই প্রোগ্রাম বা যন্ত্রাংশ যা সার্ভারের সাথে যোগাযোগ করে এবং তার থেকে সেবা (services) বা তথ্য (data) গ্রহণ করে, আর Server হল সেই প্রোগ্রাম বা যন্ত্রাংশ যা ক্লায়েন্টদের অনুরোধ প্রক্রিয়া করে এবং তাদের প্রাপ্তিসাধ্য সেবা প্রদান করে।

এখানে কিছু ক্লাসিক Client-Server অ্যাপ্লিকেশনের উদাহরণ দেয়া হলো:


১. ওয়েব ব্রাউজার এবং ওয়েব সার্ভার

Client: ওয়েব ব্রাউজার (যেমন Chrome, Firefox, Safari) Server: ওয়েব সার্ভার (যেমন Apache, Nginx)

কাজের পদ্ধতি:

  • ক্লায়েন্ট (ওয়েব ব্রাউজার) ইউজারের অনুরোধ গ্রহণ করে এবং সার্ভারে একটি HTTP GET রিকোয়েস্ট পাঠায়।
  • সার্ভার সেই অনুরোধের ভিত্তিতে HTML, CSS, JavaScript, এবং অন্যান্য ফাইল ওয়েব পেজ হিসেবে ক্লায়েন্টে প্রেরণ করে।
  • ক্লায়েন্ট পেজটি রেন্ডার করে এবং ব্যবহারকারীর সামনে প্রদর্শন করে।

এই প্রক্রিয়াটি Client-Server আর্কিটেকচারের আদর্শ উদাহরণ, যেখানে সার্ভার ক্লায়েন্টকে পেজ সরবরাহ করে।


২. ইমেইল সিস্টেম (Email System)

Client: ইমেইল ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন Outlook, Thunderbird, বা Gmail অ্যাপ) Server: ইমেইল সার্ভার (যেমন SMTP, IMAP, POP3 সার্ভার)

কাজের পদ্ধতি:

  • ক্লায়েন্ট (ইমেইল অ্যাপ্লিকেশন) ব্যবহারকারীর মেইল পাঠানোর জন্য সার্ভারে একটি SMTP (Simple Mail Transfer Protocol) অনুরোধ পাঠায়।
  • সার্ভার সেই মেইলটি প্রক্রিয়া করে এবং রিসিভিং ইমেইল সার্ভারে পাঠিয়ে দেয়।
  • ব্যবহারকারী যখন ইমেইল চেক করেন, তখন তাদের ক্লায়েন্ট অ্যাপ্লিকেশন সার্ভার থেকে মেইলগুলি গ্রহণ করতে IMAP বা POP3 প্রোটোকল ব্যবহার করে।

এখানে Client-Server আর্কিটেকচারে ইমেইল সার্ভার ক্লায়েন্টের অনুরোধ প্রক্রিয়া করে এবং তথ্য প্রদান করে।


৩. FTP (File Transfer Protocol)

Client: FTP ক্লায়েন্ট (যেমন FileZilla, WinSCP) Server: FTP সার্ভার

কাজের পদ্ধতি:

  • ক্লায়েন্ট FTP সার্ভারে সংযোগ স্থাপন করে এবং ফাইল ট্রান্সফার করতে FTP কমান্ড পাঠায় (যেমন get, put, ls ইত্যাদি)।
  • সার্ভার তখন ক্লায়েন্টের অনুরোধ অনুযায়ী ফাইল আপলোড বা ডাউনলোড করার কাজটি সম্পন্ন করে।

এখানে FTP Client-Server মডেল ফাইল ট্রান্সফারের জন্য একটি জনপ্রিয় উদাহরণ।


৪. ডাটাবেস অ্যাপ্লিকেশন

Client: ডাটাবেস ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন, MySQL Workbench, pgAdmin, বা একটি কাস্টম-built Java অ্যাপ) Server: ডাটাবেস সার্ভার (যেমন, MySQL, PostgreSQL, Oracle)

কাজের পদ্ধতি:

  • ক্লায়েন্ট ডাটাবেস সার্ভারে সংযোগ স্থাপন করে এবং SQL কুয়েরি পাঠায়।
  • সার্ভার ক্লায়েন্টের অনুরোধ অনুযায়ী ডেটা প্রসেস করে এবং ফলাফল ফেরত পাঠায়।

এটি ডাটাবেস পরিচালনার জন্য একটি সাধারণ Client-Server মডেল। এখানে ডাটাবেস সার্ভার তথ্য প্রক্রিয়া এবং সংরক্ষণের দায়িত্বে থাকে।


৫. চ্যাট অ্যাপ্লিকেশন (Chat Application)

Client: চ্যাট ক্লায়েন্ট অ্যাপ্লিকেশন (যেমন WhatsApp, Telegram, Slack) Server: চ্যাট সার্ভার (যেমন WhatsApp server, Signal server)

কাজের পদ্ধতি:

  • ক্লায়েন্ট (চ্যাট অ্যাপ) ব্যবহারকারীকে পাঠানো বার্তা সার্ভারে পাঠায়।
  • সার্ভার সেই বার্তাটি প্রসেস করে এবং প্রাপকের ক্লায়েন্টকে পাঠায়।
  • এছাড়াও, সার্ভার থেকে মেসেজ ইতিহাস বা অন্য চ্যাট ডেটা ক্লায়েন্টে লোড করা হতে পারে।

এখানে Client-Server আর্কিটেকচারে সার্ভার বার্তা সংরক্ষণ, প্রক্রিয়া এবং সরবরাহের কাজ করে।


৬. গেমিং সার্ভার (Online Gaming)

Client: গেম ক্লায়েন্ট (যেমন, PUBG, Fortnite, Call of Duty) Server: গেম সার্ভার

কাজের পদ্ধতি:

  • ক্লায়েন্ট গেমে অংশগ্রহণ করতে সার্ভারে অনুরোধ পাঠায় এবং সার্ভার খেলোয়াড়দের গেমের স্টেট, স্কোর, এবং মুভমেন্ট প্রসেস করে।
  • সার্ভার খেলোয়াড়দের মধ্যে সমন্বয় সৃষ্টি করে এবং তাদের আপডেটেড গেম স্টেট পাঠায়।

এখানে Client-Server আর্কিটেকচার গেমিং এর অনলাইন অংশে ব্যবহৃত হয়, যেখানে সার্ভার গেমের মূল লগিক এবং খেলোয়াড়দের তথ্য নিয়ন্ত্রণ করে।


উপসংহার

Client-Server Architecture একটি শক্তিশালী ডিজাইন প্যাটার্ন, যা বিভিন্ন অ্যাপ্লিকেশনে ব্যবহৃত হয়। এখানে Client এবং Server দুটি পৃথক কম্পোনেন্টের মধ্যে ডেটা বা সেবা আদান-প্রদান হয়। উদাহরণস্বরূপ, ওয়েব ব্রাউজার এবং ওয়েব সার্ভার, ইমেইল সিস্টেম, FTP, ডাটাবেস অ্যাপ্লিকেশন, চ্যাট অ্যাপ্লিকেশন, এবং গেমিং সার্ভারগুলি Client-Server আর্কিটেকচারের বাস্তব উদাহরণ। এই ডিজাইনটি কার্যকরভাবে বিভিন্ন অ্যাপ্লিকেশনকে স্কেলেবল, নিরাপদ এবং পারফরম্যান্সে দক্ষ করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion